-
Notifications
You must be signed in to change notification settings - Fork 392
change: [UIE-10012] - Implement UX and user feedback for linode interfaces feature in Create linode page #13281
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements UX and content updates to the Networking section of the Create Linode page based on design specifications and technical writing feedback. The changes reorganize the interface configuration UI and update descriptive text to improve clarity and user experience.
Changes:
- Relocated Network Interface Type selection from Networking section to within individual interface configuration
- Updated tooltip descriptions for network connection options and interface types with clearer, more concise language
- Added "(Recommended)" label to Linode Interfaces option and removed the accordion wrapper for Network Interface Type
- Updated backup pricing description and Private IP notice text for better clarity
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| Networking.tsx | Removed InterfaceGeneration import and component from main Networking section |
| LinodeInterface.tsx | Added InterfaceGeneration component to individual interface configuration |
| LinodeInterface.test.tsx | Added test for Network Interface Type radio options and updated assertions to use toBeVisible |
| InterfaceType.tsx | Updated tooltip descriptions for network connection types and adjusted positioning |
| InterfaceType.test.tsx | Added comprehensive unit tests for InterfaceType component functionality |
| InterfaceGeneration.tsx | Removed accordion wrapper, updated labels and tooltip content, restructured layout |
| InterfaceGeneration.test.tsx | Refactored tests to match new non-accordion structure and added new test cases |
| PrivateIP.tsx | Updated Private IP notice text with clearer VPC recommendation messaging |
| Backups.tsx | Simplified backup pricing description text |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceGeneration.test.tsx
Outdated
Show resolved
Hide resolved
packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceGeneration.test.tsx
Outdated
Show resolved
Hide resolved
packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceGeneration.test.tsx
Outdated
Show resolved
Hide resolved
bnussman-akamai
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <Paper> | ||
| <Stack spacing={2}> | ||
| <Typography variant="h2">Networking</Typography> | ||
| <InterfaceGeneration /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we intentionally kept the <InterfaceGeneration /> component here (rather than inside of <LinodeInterface />) because we structured our code so that multiple Interfaces could be configured in the future.
This change is fine for the time being, but if we ever allow configuring many interfaces, we'll probably need to move the <InterfaceGeneration /> component so it only renders once rather than for every <LinodeInterface /> that is rendered.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree. Ideally <LinodeInterface /> had to be segregated to handle this change. However I just wanted to keep the changes simple and minimal in the interest of time. Refactoring can be taken up later if we need to allow multiple interfaces.
| <Stack mt={1.25} spacing={0.5}> | ||
| <Stack direction="row"> | ||
| <Typography sx={(theme) => ({ font: theme.font.bold })}> | ||
| Linode Interfaces (Recommended) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess it's up to UX, but I find it odd we're not using the Beta/New chip here (<LinodeInterfaceFeatureStatusChip />). I think it would be smart to keep becuase it's a common pattern we use for new/beta features.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah excellent call @bnussman-akamai, yes let's add a NEW chip
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hello here - open to opinions, but I am thinking the NEW goes on the Linode Interface, but ack it could go on the header.
The header is Network Interface Type, so yes, it is now NEW that there are different types of interfaces.
Linode Interfaces is the NEW thing, so located there makes sense.
Let me know any strong opinions, if I am missing something, or am overthinking this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dabaka - Currently in the drawer to upgrade to linode interfaces(/linodes/${linodeId}/configurations/upgrade-interfaces), we have beta tag shown. Either we can show beta tag or new tag for linode interfaces across the application.
packages/manager/src/features/Linodes/LinodeCreate/Networking/InterfaceType.test.tsx
Outdated
Show resolved
Hide resolved
jdamore-linode
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @grevanak-akamai, validated each change and didn't observe any regressions
coliu-akamai
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ confirmed steps
thanks @grevanak-akamai!
I didn't see prototypes/discussion in the ticket for this, but just wanted to confirm that the VPC/VLAN fields are supposed to go below the Network Interface Type selection instead of above?
…faces feature in Create linode page
…ture in Account settings page
…terface and config profile interface in Create linode form
9a11d69 to
6c97d4a
Compare
Cloud Manager UI test results🔺 2 failing tests on test run #4 ↗︎
Details
TroubleshootingUse this command to re-run the failing tests: pnpm cy:run -s "cypress/e2e/core/stackscripts/create-stackscripts.spec.ts,cypress/e2e/core/linodes/clone-linode.spec.ts" |
||||||||||||||||||||
|
@bnussman-akamai @jdamore-linode - Added below changes in my latest commit
|
|
@coliu-akamai @grevanak-akamai Connie is correct, all the Connection controls should go above Network Interface Type. My fault for never rendering this. I will do that this morning and look at @bnussman-akamai dividers comment |
|
Re-rendered the Networking section here in the prototype The hierarchy is tricky as the labels are both labels and headers :/ open to any feedback! |

Description 📝
As part of this PR, apply changes in Networking section under create linode page as suggested by UX and TW
Changes 🔄
Scope 🚢
Upon production release, changes in this PR will be visible to:
Target release date 🗓️
Jan 28
Preview 📷
How to test 🧪
/linodes/create/ospageVerification steps
Author Checklists
As an Author, to speed up the review process, I considered 🤔
👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support
As an Author, before moving this PR from Draft to Open, I confirmed ✅